/*
 * Project Name spring-boot-tools
 * File Name BaseService
 * Package Name com.huxiaosu.tools.mybatis.base.service
 * Create Time 2024/7/15
 * Create by name：liujie
 */
package com.huxiaosu.tools.mybatis.base.service;

import com.huxiaosu.tools.mybatis.base.PageInfo;

import java.io.Serializable;
import java.util.List;

/**
 * Description
 *
 * @author liujie
 * @date 2024/7/15 17:45
 */
public interface BaseService<Dto,Entity> {
    /**
     *
     * 根据 ID查询数据
     * @param id 主键 ID
     * @return T
     * @author liujie
     * @date 2020/4/24 13:32
     */
    Entity getById(Serializable id);

    /**
     *
     * 插入数据
     * @param t Entity
     * @author liujie
     * @date 2020/4/24 13:33
     */
    int save(Entity t);

    /**
     *
     * 更新数据
     * @param t Entity
     * @author liujie
     * @date 2020/4/24 13:33
     */
    void update(Entity t);

    /**
     *
     * 更新数据
     * @param d dto
     * @param t Entity
     * @author liujie
     * @date 2020/4/24 13:33
     */
    public void update(Dto d, Entity t);

    /**
     *
     * 根据 ID删除数据
     * @param id 不能为空
     * @author liujie
     * @date 2020/4/24 13:46
     */
    void deleteById(Serializable id);
    /** 
     * 根据实体删除
     * @param entity 
    
     * @return void 
     * @author liujie 
     * @date 2024/7/26 17:56
     */
    void deleteByEntity(Entity entity);

    /**
     * 获取分页数据
     * @param d
     * @return List
     * @author liujie
     * @date 2020/7/27 14:04
     */
    PageInfo<Entity> getList(Dto d);

    /**
     *
     * 删除一堆数据
     * @param ids 不能为空
     * @author liujie
     * @date 2020/4/24 13:46
     */
    void deleteByIds(List<Serializable> ids);
}